iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0

● 這章會示範如何用Shioaji做台股下單

終於來到下單的環節啦~~~

沒有下單過,別說你進入過股票市場/images/emoticon/emoticon15.gif

下單(Order)

在下單之前,我們得先定義委託單
一樣以"永豐金"為例,代碼「2890
我們要先建立委託單物件並命名為order
程式碼如下

contract = api.Contracts.Stocks["2890"] #用contract取得股票資訊

order = api.Order(
          price=13.9, #委託買入價格
          quantity=1,  #委託買入張數
          action="Buy", # 買or賣
          price_type="LMT", #價格類別
          order_type="ROD", #訂單類型
          order_lot="Common", # 整股or零股
          account=api.stock_account #代入帳號
          )

接下來就可以進行下單了
下單的程式碼如下

trade = api.place_order(contract, order) #將contract及order丟入place_order方法中並命名為trade
print(trade) # 輸出trade結果

輸出結果如下
https://ithelp.ithome.com.tw/upload/images/20211007/20139934hzibjuZAfb.jpg
為了更清楚表示輸出結果,另外打在下面

#股票資訊
contract=Stock( 
exchange=<Exchange.TSE: 'TSE'>,  #TSE: 上市公司(OTC為上櫃,OES為興櫃)
code='2890',  #代碼
symbol='TSE2890', #股票代碼
name='永豐金',  #股票名稱
category='17',  #股票類別
unit=1000,  #單位數量
limit_up=15.25,  #漲停價
limit_down=12.55,  #跌停價
reference=13.9,   #參考價
update_date='2021/10/07',  #最後更新日期
day_trade=<DayTrade.Yes: 'Yes'>)  #可否當沖
#委託單資訊
order=Order(
action=<Action.Buy: 'Buy'>,  #買or賣
price=13.9,  #委託買入價格
quantity=1,   #委託買入張數
id='0c78626e',  #識別號
seqno='099185',  #流水編號
ordno='WA041',  #訂單編號
account=Account( 
account_type=<AccountType.Stock: 'S'>,  #帳號類型
person_id='PAPIUSER02',  #個人帳號
broker_id='9A95',  #委託商帳號
account_id='0504486',  #帳號識別碼
signed=True),  #是否簽署
price_type=<StockPriceType.LMT: 'LMT'>,  #價格類別
order_type=<FuturesOrderType.ROD: 'ROD'>)  #訂單類型
#目前委託狀態
status=OrderStatus(
id='0c78626e',  #識別碼
status=<Status.PendingSubmit: 'PendingSubmit'>, #委託單狀態
status_code='0',  #狀態碼
order_datetime=datetime.datetime(2021, 10, 7, 16, 54, 49),  #委託時間
deals=[]) #成交狀態

以上就完成一筆下訂單的動作了


上一篇
<Day21> Snapshots — 取得多檔股票最新資訊
下一篇
<Day23> 如何 更新 or 修改or 取消 委託單?
系列文
當金融與API相遇會擦出什麼火花?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言